import Vue from 'vue'
import App from './App.vue'
import router from './router'

// 引入 ui 库
import ElementUI from 'element-ui'
// 引入 css
import 'element-ui/lib/theme-chalk/index.css'
//注册组件库
Vue.use(ElementUI)

// 引入axios
import axios from 'axios'

// 绑定到原型
Vue.prototype.$axios = axios

//设置默认的 api 域名基准路径
axios.defaults.baseURL = 'http://127.0.0.1:3000'
// axios.defaults.baseURL = 'http://liangwei.tech:3000'

// 其他代码...
axios.interceptors.request.use(config => {
  // 判断如果本地储存有token 但是请求配置没有, 就要加上
  if (localStorage.getItem('token') && !config.headers.Authorization) {
    config.headers.Authorization = 'Bearer ' + localStorage.getItem('token')
  }
  // 跟响应拦截器一样, 拦住了就必须return放行
  return config
})

// 路由守卫
router.beforeEach((to, form, next) => {
  if (to.path != '/login' && !localStorage.getItem('token')) {
    router.push('/login')
  } else {
    next()
  }
})

// 设置请求拦截器
axios.interceptors.request.use(config => {
  console.log(config)
  //手动将Authorization添加到请求头,值为token
  config.headers.Authorization = localStorage.getItem('token')
  // 在最后必须 return config 固定写法
  return config
})

Vue.config.productionTip = false

new Vue({
  router,
  render: function(h) {
    return h(App)
  }
}).$mount('#app')
